|
(******************************************************************************)
(**) ОТДЕЛ УниВин+;
(******************************************************************************)
(* НАЗНАЧЕНИЕ: перекодировка текстовых файлов в УНИ и в ВИН *)
(******************************************************************************)
ИСПОЛЬЗУЕТ
ОС ИЗ "...\Отделы\Обмен\",
Знак ИЗ "...\Отделы\Иное\",
Параметр ИЗ "...\Отделы\Обмен\",
Читать ИЗ "...\Отделы\Обмен\",
Писать ИЗ "...\Отделы\Обмен\",
Вывод ИЗ "...\Отделы\Обмен\",
Файл ИЗ "...\Отделы\Обмен\";
(******************************************************************************)
ЗАДАЧА Ошибка1(ц-:ЦЕПЬ);
УКАЗ
Вывод.Цепь(ц);
Вывод.Цепь("^УниВин <ВУНИ> <ВВИН> вх.файл(ы)");
(* Пояснение: при записи текста в поток (в т.ч. на экран)
* знак ^ обозначает переход на новую строку и сброс данных *)
СТОП(1)
КОН Ошибка1;
(******************************************************************************)
ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ);
УКАЗ
Вывод.Цепь(ц1);
Ошибка1(ц2)
КОН Ошибка2;
(******************************************************************************)
ЗАДАЧА Перевод(ч:Читать.Поток; п:Писать.Поток; УвВ:КЛЮЧ);
(* УвВ=ВКЛ, если перевод Уни В Вин *)
УКАЗ
ЕСЛИ УвВ ТО
ч.видЗнаков:=Читать.знУни;
п.видЗнаков:=Писать.знВин
ИНАЧЕ
ч.видЗнаков:=Читать.знВин;
п.видЗнаков:=Писать.знУни
КОН;
ПОКА НЕ Читать.Конец(ч) ВЫП
Писать.ЗнакЦепи(п,Читать.ЗнакЦепи(ч))
КОН
КОН Перевод;
(******************************************************************************)
ЗАДАЧА Голова();
ПЕР
ч:Читать.Поток;
п:Писать.Поток;
чимя:Файл.ВПолного;
путь:Файл.ВПути;
имя:Файл.ВИмени;
тип:Файл.ВТипа;
увв,рез:КЛЮЧ;
парам:ЦЕЛ;
поиск:Файл.Поиск;
ЗАДАЧА НовоеИмя;
ПЕР
пимя:ДОСТУП К ЦЕПЬ;
УКАЗ
СОЗДАТЬ(пимя,поиск.имя);
ЕСЛИ ОС.СледующийПоискФ(поиск) ТО
НовоеИмя
КОН;
Вывод.Цепь(пимя^);
Вывод.Цепь("^");
Файл.РазобратьИмя(пимя^,путь,имя,тип);
Файл.СобратьИмя(чимя,путь,имя,"BAK");
рез:=ОС.УдалитьФ(чимя);
рез:=ОС.ПереименоватьФ(пимя^,чимя);
ч:=Читать.Открыть(чимя);
ЕСЛИ ч=ПУСТО ТО
Ошибка2(чимя," не открывается")
КОН;
п:=Писать.Открыть(пимя^);
ЕСЛИ п=ПУСТО ТО
Ошибка2(пимя^," не открывается")
КОН;
Перевод(ч,п,увв);
Читать.Закрыть(ч);
Писать.Закрыть(п)
КОН НовоеИмя;
УКАЗ
парам:=1;
ЕСЛИ парам >= Параметр.всего ТО
Ошибка1("Нет параметров")
КОН;
Параметр.Текст(парам,чимя);
ЕСЛИ чимя = "ВУНИ" ТО
увв:=ОТКЛ
АЕСЛИ чимя = "ВВИН" ТО
увв:=ВКЛ
ИНАЧЕ
Ошибка1("Неверный параметр")
КОН;
УВЕЛИЧИТЬ(парам);
ЕСЛИ парам >= Параметр.всего ТО
Ошибка1("Нет имени входного файла")
КОН;
Параметр.Текст(парам,чимя);
ЕСЛИ НЕ ОС.ПервыйПоискФ(чимя,поиск) ТО
Ошибка2(чимя," не найден(ы)")
КОН;
НовоеИмя
КОН Голова;
УКАЗ
Голова
КОН УниВин.
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|